/*
 * Copyright (C) 2017 Pingan, Inc. All Rights Reserved.
 */

package com.pingan.haofang.searchcloud.es.indices;

import com.pingan.haofang.searchcloud.api.IndexDataPacket;

import java.io.IOException;

/**
 * 索引数据逻辑
 *
 * @author zhangbi617
 * @date 2017-07-05
 */
public interface IndicesDataService {

    /**
     * 导入数据
     *
     * @param host      host
     * @param indexName 索引名
     * @param type      类型
     * @param id        id
     * @param json      json数据
     */
    void create(String host, String indexName, String type, String id, String json);

    /**
     * 获取数据
     *
     * @param host      host
     * @param indexName 索引名
     * @param type      类型
     * @param id        数据id
     * @return
     */
    String getData(String host, String indexName, String type, String id);

    /**
     * 删除数据
     *
     * @param host
     * @param indexName 索引名
     * @param type      类型
     * @param id        数据id
     */
    void deleteData(String host, String indexName, String type, String id);

    /**
     * 批量
     *
     * @param host            host机器
     * @param indexName       index名
     * @param type            type名
     * @param indexDataPacket 数据包
     */
    void bulkUpdate(String host, String indexName, String type, IndexDataPacket indexDataPacket) throws IOException;

    /**
     * 获取索引指定字段 最大值
     *
     * @param host
     * @param indexName
     * @param versionField
     * @return 整形的返回值
     */
    Long getMaxValue(String host, String indexName, String versionField);
}
